#ifndef _SALE_TICKETS_H
#define _SALE_TICKETS_H

// #include "stdafx.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string.h>
#include <windows.h>
#include <strstream>

#define NAME_SIZE 40

// 火车票信息 数量、名称
typedef struct __Ticket
{
  int num;
  char name[NAME_SIZE];

  __Ticket() : num(0)
  {
    memset(name, 0, NAME_SIZE * sizeof(char));
  }
} Ticket;

// HANDLE g_hMutex = NULL; // 互斥量 不能在头文件中定义

// 线程数据 所有火车票、线程名称
typedef struct __THREAD_DATA
{
  Ticket *p_tickets;
  char name[NAME_SIZE];
  __THREAD_DATA() : p_tickets(NULL)
  {
    memset(name, 0, NAME_SIZE * sizeof(char));
  }
} THREAD_DATA;

// 基本数据类型转换成字符串
template <class T>
std::string convertToString(const T v)
{
  std::strstream ss;
  ss << v;
  std::string s;
  ss >> s;
  return s;
}

// 售票程序
DWORD WINAPI saleStickets(LPVOID);

#endif